home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / database / qddb-1.42 < prev    next >
Text File  |  1996-11-16  |  9KB  |  306 lines

  1.  
  2. Here's a patch to the newly released Qddb 1.42.6 that
  3. fixes the following problems:
  4.  
  5.     1. Expert search date ranges were giving an error message
  6.     2. When the expert search window was displayed, there was
  7.         no busy cursor.
  8.  
  9. To apply:
  10.     1. copy this file to the qddb-1.42.6 directory.
  11.     2. patch -p0 < qddb-1.42.6p1.patch
  12.     3. remake and install
  13.  
  14. --------------- cut here -----------------------
  15. *** ../qddb-dists/qddb-1.42.6//ChangeLog    Mon Nov 27 10:22:24 1995
  16. --- .//ChangeLog    Mon Nov 27 20:02:19 1995
  17. ***************
  18. *** 1,5 ****
  19. --- 1,13 ----
  20.   Mon Nov 27 10:21:33 1995  Eric H. Herrin II  <eric@herrin.msext.uky.edu>
  21.   
  22. +     * Lib/LibQddb/Utils.c (Qddb_DateStringToTime): Was writing
  23. +     unsigned; properly handle negative times.
  24. +     * TkUtils/fx-tk4/fx_expert.tcl: Fixed a bug in range searching.
  25. +     Explicitly check for non-existent args.
  26. +     * Qddb 1.42.6 released.
  27.       * Testing under SunOS, HP/UX, Linux, BSD/OS 2.0.1, BSD/386 1.1
  28.       Misc changes to force clean compile.
  29.   
  30. ***************
  31. *** 14,20 ****
  32.       * TkUtils/fx-tk4/fx_expert.tcl: Lots of minor fixes; few
  33.       new major features.   Placed main search building box
  34.       in a canvas so it will scroll.   Added ability to resize
  35. !     the window horizontally.   Added comment field and current
  36.       settings frame.
  37.   
  38.       * TkUtils/fx-tk4/nxqddb.tcl (Fx_Entry): Fixed a bug in nxqddb 
  39. --- 22,28 ----
  40.       * TkUtils/fx-tk4/fx_expert.tcl: Lots of minor fixes; few
  41.       new major features.   Placed main search building box
  42.       in a canvas so it will scroll.   Added ability to resize
  43. !     the window vertically.   Added comment field and current
  44.       settings frame.
  45.   
  46.       * TkUtils/fx-tk4/nxqddb.tcl (Fx_Entry): Fixed a bug in nxqddb 
  47. *** ../qddb-dists/qddb-1.42.6//Lib/LibQddb/Utils.c    Wed Nov 22 17:33:37 1995
  48. --- .//Lib/LibQddb/Utils.c    Mon Nov 27 20:05:41 1995
  49. ***************
  50. *** 931,939 ****
  51.       }
  52.       }
  53.       if (sizeof(time_t) == sizeof(int))
  54. !     sprintf(buf, "%u", (int)clockVal);
  55.       else if (sizeof(time_t) == sizeof(long))
  56. !     sprintf(buf, "%lu", (long)clockVal);
  57.       else
  58.       PANIC("sizeof(time_t) != sizeof(int) or sizeof(long)");
  59.       retval = Malloc(sizeof(char)*(strlen(buf)+1));
  60. --- 931,939 ----
  61.       }
  62.       }
  63.       if (sizeof(time_t) == sizeof(int))
  64. !     sprintf(buf, "%d", (int)clockVal);
  65.       else if (sizeof(time_t) == sizeof(long))
  66. !     sprintf(buf, "%ld", (long)clockVal);
  67.       else
  68.       PANIC("sizeof(time_t) != sizeof(int) or sizeof(long)");
  69.       retval = Malloc(sizeof(char)*(strlen(buf)+1));
  70. *** ../qddb-dists/qddb-1.42.6//TclUtils/src/TclSearch.c    Fri Nov 24 12:02:27 1995
  71. --- .//TclUtils/src/TclSearch.c    Mon Nov 27 19:30:53 1995
  72. ***************
  73. *** 50,64 ****
  74.       } else if (argc == 5 && argv[3][0] == '-' && argv[3][1] == '\0') { 
  75.       /* no lower limit */
  76.       args->UpperStr = argv[4];
  77.       args->LowerStr = NULL;
  78.       args->LowerExists = False;
  79. -     args->UpperExists = True;
  80.       } else if (argc == 5 && argv[4][0] == '-' && argv[4][1] == '\0') {
  81.       /* no upper limit */
  82.       args->UpperStr = NULL;
  83.       args->LowerStr = argv[3];
  84.       args->LowerExists = True;
  85. -     args->UpperExists = False;
  86.       } else {
  87.       if (argc != 6 || argv[4][0] != '-' || argv[4][1] != '\0') {
  88.           if (argc <= 4) {
  89. --- 50,64 ----
  90.       } else if (argc == 5 && argv[3][0] == '-' && argv[3][1] == '\0') { 
  91.       /* no lower limit */
  92.       args->UpperStr = argv[4];
  93. +     args->UpperExists = True;
  94.       args->LowerStr = NULL;
  95.       args->LowerExists = False;
  96.       } else if (argc == 5 && argv[4][0] == '-' && argv[4][1] == '\0') {
  97.       /* no upper limit */
  98.       args->UpperStr = NULL;
  99. +     args->UpperExists = False;
  100.       args->LowerStr = argv[3];
  101.       args->LowerExists = True;
  102.       } else {
  103.       if (argc != 6 || argv[4][0] != '-' || argv[4][1] != '\0') {
  104.           if (argc <= 4) {
  105. *** ../qddb-dists/qddb-1.42.6//TkUtils/fx-tk4/fx_menu.tcl    Sun Nov 26 21:11:29 1995
  106. --- .//TkUtils/fx-tk4/fx_menu.tcl    Mon Nov 27 21:25:31 1995
  107. ***************
  108. *** 455,460 ****
  109. --- 455,463 ----
  110.       method ExpertSearchProc {} {
  111.       global fx_config $status_variable fx_blt
  112.   
  113. +     if {$fx_blt} {
  114. +         blt_busy hold .
  115. +     }
  116.       if {[string length $restrict] == 0} {
  117.           set res {}
  118.       } else {
  119. ***************
  120. *** 466,474 ****
  121.           set l [Fx:ExpertSearchWindow .expert_search $schema $res ""]
  122.       }
  123.       if {[lindex $l 0] == 1} {
  124. -         if {$fx_blt} {
  125. -         blt_busy hold .
  126. -         }
  127.           ::set $status_variable "Searching..."
  128.           update idletasks
  129.           update
  130. --- 469,474 ----
  131. ***************
  132. *** 485,490 ****
  133. --- 485,494 ----
  134.           update idletasks
  135.           update
  136.           SearchProc [lindex $l 1] [Fx:UniqueList [lindex $l 0]]
  137. +     } else {
  138. +         if {$fx_blt} {
  139. +         blt_busy forget .
  140. +         }
  141.       }
  142.       }
  143.       method DeleteProc {} {
  144. *** ../qddb-dists/qddb-1.42.6//TkUtils/fx-tk4/fx_expert.tcl    Sun Nov 26 23:13:23 1995
  145. --- .//TkUtils/fx-tk4/fx_expert.tcl    Mon Nov 27 20:56:21 1995
  146. ***************
  147. *** 762,767 ****
  148. --- 762,768 ----
  149.       catch "focus $oldFocus"
  150.       catch "grab $oldGrab"
  151.       destroy $w
  152. +     update idletasks; update
  153.       return $retval
  154.   }
  155.   
  156. ***************
  157. *** 800,805 ****
  158. --- 801,807 ----
  159.   }
  160.   
  161.   proc Fx:ExpertSearchParseNode {s node} {
  162. +     update idletasks; update
  163.       set opt [lindex $node 2]
  164.       set attr [lindex $node 3]
  165.       set lhs [lindex $node 4]
  166. ***************
  167. *** 827,844 ****
  168.       switch $opt {
  169.           nr -
  170.           wr {
  171.           if {[string compare $opt nr] == 0} {
  172. !             if {[string length $lhs] > 0 && [catch "expr double($lhs)" err] != 0} {
  173.               error "Invalid number: $lhs"
  174.               }
  175. !             if {[string length $rhs] > 0 && [catch "expr double($rhs)" err] != 0} {
  176.               error "Invalid number: $rhs"
  177.               }
  178.           }
  179.           if {$anynode} {
  180. !             return [eval qddb_search $s $opt $lhs - $rhs]
  181.           } else {
  182. !             return [eval qddb_search $s -prunebyattr $attr $opt $lhs - $rhs]
  183.           }
  184.           }
  185.           r -
  186. --- 829,864 ----
  187.       switch $opt {
  188.           nr -
  189.           wr {
  190. +         set llen [string length $lhs]
  191. +         set rlen [string length $rhs]
  192.           if {[string compare $opt nr] == 0} {
  193. !             if {$llen > 0 && [catch "expr double($lhs)" err] != 0} {
  194.               error "Invalid number: $lhs"
  195.               }
  196. !             if {$rlen > 0 && [catch "expr double($rhs)" err] != 0} {
  197.               error "Invalid number: $rhs"
  198.               }
  199.           }
  200.           if {$anynode} {
  201. !             if {$llen > 0 && $rlen > 0} {
  202. !             return [qddb_search $s $opt $lhs - $rhs]
  203. !             } elseif {$llen > 0 && $rlen == 0} {
  204. !             return [qddb_search $s $opt $lhs -]
  205. !             } elseif {$llen == 0 && $rlen > 0} {
  206. !             return [qddb_search $s $opt - $rhs]
  207. !             } else {
  208. !             return [qddb_search $s $opt -]
  209. !             }
  210.           } else {
  211. !             if {$llen > 0 && $rlen > 0} {
  212. !             return [qddb_search $s -prunebyattr $attr $opt $lhs - $rhs]
  213. !             } elseif {$llen > 0 && $rlen == 0} {
  214. !             return [qddb_search $s -prunebyattr $attr $opt $lhs -]
  215. !             } elseif {$llen == 0 && $rlen > 0} {
  216. !             return [qddb_search $s -prunebyattr $attr $opt - $rhs]
  217. !             } else {
  218. !             return [qddb_search $s -prunebyattr $attr $opt -]
  219. !             }
  220.           }
  221.           }
  222.           r -
  223. ***************
  224. *** 860,873 ****
  225.           if {[string compare $opt d] == 0} {
  226.               set rhs $lhs
  227.           }
  228. !         if {[string length $lhs] > 0} {
  229.               if {[qddb_util isdate "$lhs 12:00AM"]} {
  230.               set lhs "$lhs 12:00AM"
  231.               } elseif {![qddb_util isdate $lhs]} {
  232.               error "Invalid date: $lhs"
  233.               }
  234.           }
  235. !         if {[string length $rhs] > 0} {
  236.               if {[qddb_util isdate "$rhs 11:59PM"]} {
  237.               set rhs "$rhs 11:59PM"
  238.               } elseif {![qddb_util isdate $rhs]} {
  239. --- 880,895 ----
  240.           if {[string compare $opt d] == 0} {
  241.               set rhs $lhs
  242.           }
  243. !         set llen [string length $lhs]
  244. !         if {$llen > 0} {
  245.               if {[qddb_util isdate "$lhs 12:00AM"]} {
  246.               set lhs "$lhs 12:00AM"
  247.               } elseif {![qddb_util isdate $lhs]} {
  248.               error "Invalid date: $lhs"
  249.               }
  250.           }
  251. !         set rlen [string length $rhs]
  252. !         if {$rlen > 0} {
  253.               if {[qddb_util isdate "$rhs 11:59PM"]} {
  254.               set rhs "$rhs 11:59PM"
  255.               } elseif {![qddb_util isdate $rhs]} {
  256. ***************
  257. *** 875,883 ****
  258.               }
  259.           }
  260.           if {$anynode} {
  261. !             return [eval qddb_search $s dr $lhs - $rhs]
  262.           } else {
  263. !             return [eval qddb_search $s -prunebyattr $attr dr $lhs - $rhs]
  264.           }
  265.           }
  266.           default {
  267. --- 897,921 ----
  268.               }
  269.           }
  270.           if {$anynode} {
  271. !             if {$llen > 0 && $rlen > 0} {
  272. !             return [qddb_search $s dr $lhs - $rhs]
  273. !             } elseif {$llen > 0 && $rlen == 0} {
  274. !             return [qddb_search $s dr $lhs -]
  275. !             } elseif {$llen == 0 && $rlen > 0} {
  276. !             return [qddb_search $s dr - $rhs]
  277. !             } else {
  278. !             return [qddb_search $s dr -]
  279. !             }
  280.           } else {
  281. !             if {$llen > 0 && $rlen > 0} {
  282. !             return [qddb_search $s -prunebyattr $attr dr $lhs - $rhs]
  283. !             } elseif {$llen > 0 && $rlen == 0} {
  284. !             return [qddb_search $s -prunebyattr $attr dr $lhs -]
  285. !             } elseif {$llen == 0 && $rlen > 0} {
  286. !             return [qddb_search $s -prunebyattr $attr dr - $rhs]
  287. !             } else {
  288. !             return [qddb_search $s -prunebyattr $attr dr -]
  289. !             }
  290.           }
  291.           }
  292.           default {
  293. ***************
  294. *** 890,895 ****
  295. --- 928,934 ----
  296.   proc Fx:ExpertSearchParser {s nodes} {
  297.       set search_attrs {}
  298.       foreach i $nodes {
  299. +     update idletasks; update
  300.       if {[string compare [lindex $i 0] t] != 0} {
  301.           if {[string compare [lindex $i 0] c] == 0} {continue}
  302.           if {[string compare [lindex $i 0] i] == 0} {
  303.